package com.one.common.view.pagestate.page;


import com.one.common.view.base.IView;

/**
 * creator: zhulunjun
 * time:    2018/3/9
 * describe: 页面接口规划
 */

public interface PageInterFace extends IView {

    /**
     * 布局
     * @return 子类返回自身的布局
     */
     int getLayoutResId();

    /**
     * 如果 getLayoutResId 被使用了，则用 getSecondLayoutResId返回二级id
     * haveRootView() 返回true 时表示需要base类需要使用etSecondLayoutResId
     *
     * 使用场景：
     * 1. BaseStateActivity 页面使用getSecondLayoutResId返回布局id，haveRootView为true
     * 2. BaseListActivity 页面有自己的布局id,需要放到BaseStateActivity中去
     * 3. BaseStateActivity 页面使用getLayoutResId获取子类的布局id,添加到自己的布局里面去
     * 4. 暂时只有BaseStateActivity用到getSecondLayoutResId
     *
     * @return 子类的父类的布局
     */
    int getSecondLayoutResId();


    /**
     * 创建布局之前
     */
     void beforeCreateView();

    /**
     * 创建布局之后
     */
    void afterCreateView();

    /**
     * 子类是否已经创建过布局了
     */
    boolean haveRootView();

    /**
     * 初始化布局
     */
    void initView();

    /**
     * 初始化数据
     */
    void initData();
}
